package com.xherorlclass;

import com.xherorlclass.discovery.RegistryConfig;
import com.xherorlclass.impl.HelloXherorlRpcImpl;
import lombok.extern.slf4j.Slf4j;

/**
 * @author ：Xherorl
 * @date ：Created in 2023/8/24 9:17
 * @description：
 */
@Slf4j
public class ProviderApplication {
    public static void main(String[] args) {
        // 服务提供方，需要注册服务，启动服务
        // 1.封装要发布的服务
        ServiceConfig<HelloXherorlRpc> service = new ServiceConfig();
        service.setInterface(HelloXherorlRpc.class);
        service.setRef(new HelloXherorlRpcImpl());

        // 2.定义注册中心

        // 3.通过启动引导程序，启动服务提供方
        // （1）配置---应用名称---注册中心---序列化协议---压缩方式
        // （2）发布服务
        XherorlRpcBootstrap.getInstance()
                .application("first-rpc-provider")
                // 配置中心
                .registry(new RegistryConfig("zookeeper://127.0.0.1:2181"))
                .serialize("jdk")
                // 发布服务
                 .publish(service)
                // 扫包批量发布
                .scan("com.xherorlclass")
                // 启动服务
                .start();

    }
}
